package fr.vvins.core.biz.catalog.dto;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import fr.vvins.core.catalog.entity.Content;
import fr.vvins.core.common.dto.BeanDtoImpl;
import fr.vvins.core.common.dto.annotation.Dto;

@Dto(name="Content", entity=Content.class)
public class ContentDto extends BeanDtoImpl{

	private static final long serialVersionUID = 3405684180239891608L;

	private String type;
	
	private String nodeId;
	
	private String key;
	
	private List<MediaDto> medias;
	
	private Map<String, List<MediaDto>> mediasByType;
	

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getNodeId() {
		return nodeId;
	}

	public void setNodeId(String nodeId) {
		this.nodeId = nodeId;
	}

	public String getKey() {
		return key;
	}

	public void setKey(String key) {
		this.key = key;
	}
	

	public List<MediaDto> getMedias() {
		return medias;
	}

	public void setMedias(List<MediaDto> medias) {
		this.medias = medias;
	}

	public Map<String, List<MediaDto>> getMediasByType() {
		if(mediasByType == null && getMedias() != null && !getMedias().isEmpty()){
			mediasByType = new HashMap<String, List<MediaDto>>();
			for(MediaDto m : getMedias()){
				List<MediaDto> amediastype =  mediasByType.get(""+m.getMediatype().getId());
				if(amediastype == null){
					amediastype = new ArrayList<MediaDto>();
				}
				amediastype.add(m);
				mediasByType.put(""+m.getMediatype().getId(), amediastype);
			}
		}
		return mediasByType;
		
	}
	
	public void setMediasByType(Map<String, List<MediaDto>> mediasByType) {
		this.mediasByType = mediasByType;
	}
}
